/**
 * Classe que representa possiveis estados de uma Maquina de Turing
 */
public class Estado {
    private int id;
    private String nome;
    private char tipo;
    ListaTransicoes transitions;
    
    /**
     * Contrutor com 2 parametros
     * @param id Identificação do estado 
     * @param tipo Tipo do Estado "S" inicial, "F" final ou "N" para não terminal
     */
    public Estado(int id, char tipo){
        this.id = id;
        this.nome = "q"+id;
        this.tipo = tipo;
        transitions = new ListaTransicoes();
    }
    
    /**
     * Contrutor com 1 parametro que chama o de 2 parametros 
     * @param id Identificação do estado
     */
    public Estado(int id){
        this(id, 'N');
    }
    /**
     * Seta o atributo ID
     * @param id identificador
     */
    public void setID(int id){
        this.id = id;
    }
    /**
     * Retorna o atributo ID
     * @return identificador
     */
    public int getID(){
        return id;
    }
    /**
     * Seta o atributo nome
     * @param nome nome do estado
     */
    public void setNome(String nome){
        this.nome = nome;
    }
    /**
     * Retorna o atributo nome
     * @return nome do estado
     */
    public String getNome(){
        return nome;
    }
    /**
     * Seta o tipo do estado
     * @param tipo tipo do estado
     */
    public void setTipo(char tipo){
        this.tipo = tipo;
    }
    /**
     * Retorna o tipo do estado
     * @return tipo do estado
     */
    public char getTipo(){
        return tipo;
    }
    
}
